package com.sjh.lib_app

import com.sjh.lib_app.env.CheckEnvironment
import com.sjh.lib_app.env.Environment

/**
 * APP的一些配置
 * @author Extends
 * @date 2020/6/16
 */
object AppConfig {

    var versionName:String = ""

    /**
     * 多环境控制，默认为开发环境
     */
     var env:Environment = CheckEnvironment()

    /**
     * 获取多环境的Tag
     *
     * 作为控制版本控制中的渠道标签
     */
    var environmentTag = "dev"
        private set


    fun isShowLog() = BuildConfig.DEBUG

    /**
     * 设置h5地址的域名
     */
    fun getWebUrl() = env.webUrl
    /**
     * 获取接口域名
     */
    fun getAppUrl() = env.appUrl
    /**
     * 获取签名用到的盐
     */
    fun getSignToken() = env.signToken

    /**
     * 图片上传时使用的endPoint
     */
    fun getEndPoint() = env.endPoint

    /**
     * 图片上传的桶
     */
    fun getBuctet() = env.bucket

    /**
     * 图片域名
     */
    fun getImgHttp() = env.imgHttp

    /**
     * 笔迹点透传的长连接地址
     */
    fun getLongConnectHttp() = env.longConnectHttp

    /**
     * 笔迹透传的端口号
     */
    fun getLongConnectPort() = env.longConnectPort

    /**
     * 获取笔迹点数据库表名
     */
    fun getPointSQLTabName()= env.pointSQLTabName

    /**
     * 配置环境
     */
    fun configEnvironment(name: String){
        environmentTag = name
        try {
            val packageName = Environment::class.java.`package`?.name?:throw Exception("package is not null")
            env = Class.forName("$packageName.${name[0].toUpperCase()}${name.substring(1)}Environment").newInstance() as Environment
        }catch (e:Exception){
            e.printStackTrace()
        }
    }

}